#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include "path.h"

char ** get_path()
{
	char ** archivos = NULL;
   int cant_archivos = 0;

	cant_archivos = ver_cant_archivos();
	archivos = (char**)malloc(cant_archivos * sizeof(char*));
 	if(!archivos)
 	{
		printf("ERROR AL RESERVAR MEMORIA\n");
		getch();
		exit(1);
	}
   path(archivos);

 	/**************************
 	Posicion 0: Corresponde a usuarios.bin
 	Posicion 1: Corresponde a skills.txt
 	Posicion 2: Corresponde a sectores.txt
 	Posicion 3: Corresponde a empleados.bin
	Posicion 4: Corresponde a historico.txt
   Posicion 5: Corresponde a login.txt
 	***************************/

   return archivos;
}

//Determina la cantidad de archivos definidos en path.txt
//Se debe hacer un enter al final del archivo de texto
int ver_cant_archivos()
{
	char linea[80] = {NULL};
	int cont = 0;
	FILE *fp = NULL;
   fp = fopen("path.txt", "r");
	if(fp == NULL)
	{
		printf("ERROR EN EL ACCESO AL ARCHIVO\n");
		getch();
		exit(1);
	}

	fgets(linea, 80, fp);
	while(!feof(fp))
   {
   	cont++;
		fgets(linea, 80, fp);
   }

	fclose(fp);
   
	return cont;
}

//Almacena los path del archivo path.txt mediante el uso de un puntero a vectores
void path(char **archivos)
{
	char aux[80] = {NULL};
	int i=0;
	FILE *fp = NULL;
	fp = fopen("path.txt","r");

	if(fp == NULL)
   {
		printf("ERROR EN EL ACCESO AL ARCHIVO\n");
		system("pause");
		exit(1);
	}

	fseek(fp, 0, SEEK_SET);
	fscanf(fp, "%s", aux);//almacena el path en aux

   while(!feof(fp)) //while(cant_archivos--)
   {
      *(archivos+i)= (char*)malloc(strlen(aux)+1);
		if(*(archivos+i) == NULL)
      {
			printf("ERROR AL RESERVAR MEMORIA\n");
			system("pause");
			exit(1);
		}

		strcpy(*(archivos+i), aux);
		strcat(*(archivos+i), "\0");
		fscanf(fp, "%s", aux); //Almacena el path en aux
		i++;
	}

   fclose(fp);
}
